Clash配置文件·基础篇 |
您所在的位置:网站首页 › clash 配置文件 模版 › Clash配置文件·基础篇 |
Clash配置文件·基础篇
· 2021-7-1 · 次阅读 庆祝Chinese Communist Party 100th Anniversary Clash是一个基于规则的跨平台网络代理工具,支持诸如Shadowsocks/V2Ray/Trojan等协议,功能强大,界面美观。 与传统的网络代理工具不同,Clash需要依赖配置文件(其他软件也得用,所以这话相当于废话)但是Clash不像一般的代理工具,无法在图形化前端上直接配置,不够直观,也就劝退了一堆小白。 好在,对于机场及付费服务用户来说,只要导入机场提供的订阅Url就完事了;对于自建用户,网络上也有很多“订阅转换”工具,能够满足基本要求。 然而,如果需要更好的个性化设置,那么只能对Clash的配置文件进行处理才能更好的让Clash“为我所用”。 (Q:Clash For Windows没有中文么?A:要不第三方汉化版,要不Google翻译去,总有一款适合你) Clash的配置文件基于Yaml格式,也正应此,配置文件可读性很高。 Yaml有如下优点: 大小写敏感 缩进只能使用空格(不能用tab) 以缩进指示层级关系 支持注释(因此比json可读性就高了不是一星半点)闲话少叙,下面进入正题。 (Ps:本文使用模板文件来自此处) Clash配置文件分成多段, 首先是客户端设置: port: 7890 socks-port: 7891 allow-lan: false mode: Rule log-level: info external-controller: 127.0.0.1:9090 experimental: ignore-resolve-fail: true这是一些基础选项, port与socks-port无须多论,就是本地的http及socks5代理端口( allow-lan:允许局域网共享,设置成true时发挥作用 bind-address:当allow-lan设置true时发挥作用,设置”*”时绑定所有ip(包括v4及v6) 当然也可以单个v4或者v6。 mode:相当于Shadowrocket(或者桌面版ss/ssr/v2rayn)的模式 可选rule(按规则放行)/Global(全局走Clash)/Direct(全不走Clash) log-level:日志选项 可选silent(完全不输出日志)/warning(仅warning等级日志)/error(仅error等级日志)/info(正常输出)/debug(调试模式/嘈杂模式,输出最详细) external-controller:用不着不管(不是很懂) experimental:实验性功能 ignore-resolve-fail:忽略DNS解析失败(默认开) Hosts设置: hosts: 'mtalk.google.com': 108.177.125.188这里支持通配符,但是请注意静态(即完整域名)优先级是高于使用通配符的域名的。 (即定义了*.example.com又定义了foo.example.com会优先考虑foo.example.com)(神马?不会用Hosts?Pls Google it.) 然后是DNS设置: dns: enable: true ipv6: false listen: 0.0.0.0:53 enhanced-mode: fake-ip fake-ip-filter: - '*.lan' - localhost.ptlogin2.qq.com - tplogin.cn - routerlogin.net nameserver: - tls://dns.adguard.com:853 - https://1.1.1.1/dns-query fallback: - tcp://1.1.1.1 - tcp://8.8.4.4 - tcp://8.8.8.8 - tcp://9.9.9.9 fallback-filter: geoip: true ipcidr: - 240.0.0.0/4enhanced-mode设置为fake-ip或者redir-host模式(以下内容来自某段网络资料) 如果是不使用 Fake-IP 的 redir 情况下,由于操作系统、浏览器或者应用程序中的任何一个缓存了 DNS 解析结果,因此 TCP 连接可以直接根据缓存的解析结果的 IP 建立,代理客户端并没有预先收到对应的 DNS question。在这种情况下,代理客户端有可能直接将这个连接视为和 IP 连接而不是和域名连接,根据域名规则的分流可能就会因此失效,不过根据 IP 分流的规则没有失效。 如果为了避免域名分流规则失效,你可以设法阻止操作系统或者浏览器缓存 DNS 解析结果,这样每次建立 TCP 连接之前都会发送 DNS question 使代理客户端探测到域名。但是这意味着每次 TCP 连接建立都需要代理客户端进行一次 DNS 解析请求(当然代理客户端可以对 DNS 解析进行缓存避免出现延时激增)。 Fake-IP 模式下,浏览器、应用程序都是对 Fake IP 发起连接,如果没有代理客户端对连接进行重新封转,那么这部分流量就不能被发往真实的目的 IP,因此所有流量都必须经过代理客户端,而根据端口、设备的分流就需要由代理客户端自己实现。(PS:坏处也是有的,如果Clash崩了你的网就全断了) 下面的fake-ip-filter:虚假ip过滤器(过滤本地地址)这玩意的用处:比如不处理qq的快速登录(原理:QQ/TIM本地客户端打开服务器与网页交互)(腾讯远端可没这个服务器)或者Tplink路由器的Tplogin.cn,网件路由器的routerlogin.net等。 nameserver:设置DNS(支持DNS-over-TLS以及DNS-over-HTTPS) fallback:当选择全部不可用时,故障恢复。 然后是Proxies一节(虽然鬼都不会手填) proxies: - name: "ss" type: ss server: server port: 443 cipher: chacha20-ietf-poly1305 password: "password" # udp: true在这里我们手动定义了一个Shadowsocks服务器。 name:不用说都明白 type:ss表示是个Shadowsocks服务器。 以下都很好懂 udp:是否允许udp连接。 当然V2Ray 和Trojan也可以 - name: "v2ray" type: vmess server: server port: 443 uuid: a3482e88-686a-4a58-8126-99c9df64b7bf alterId: 64 cipher: auto #udp: true tls: true #skip-cert-verify: true network: ws ws-path: /path ws-headers: Host: v2ray.com # Trojan - name: "trojan" type: trojan server: server port: 443 password: password # udp: true # sni: example.com # aka server name alpn: - h2 - http/1.1 # skip-cert-verify: true(友情提示:请勿打开skip-cert-verify(跳过证书验证)否则会带来严重安全性问题:比如来自GFW的MITM(中间人攻击)) (不过一般都不会手填,要不然,,) 接下来是代理组策略: 可以在此定义切换节点,它与下一节的Rule(策略)都很重要。 假设你已经在上一节(proxies)定义过了 HK2 HK1 US1 TW1 KR1这五个节点 Clash共四种代理方式:分别是自主选择,延迟最低,故障转移,负载均衡 自主选择: proxy-groups: - name: "自选" type: select proxies: - "HK1" - "HK2" - "US1" - "TW1" - "KR1"name不用多讲 type为select表示自选, proxies以下内容为存在于此组内的节点列表。 关于自选很简单,比如我们选择了HK1这个节点,那么所有分流到这组的都需要走HK1这个节点。 延迟最低: - name: "LowDelay" type: url-test proxies: - "HK1" - "HK2" - "TW1" url: 'http://www.gstatic.com/generate_204' interval: 300type:模式选择 在这里使用了url-test模式 (以下内容摘自某Clash文档) 很多刚接触这类分流软件的用户往往会犯一个常识性错误,那就是当他们得知自动选择是自动选择一个最快的节点,就很可能认为这个策略组选择的是速度最快的节点,然而显然不是如此。自动选择选出的节点是批量测延迟过后延迟最低的那个节点,而非许多人认为的速度最快的节点。clash没有内置一个策略组类型以供获取速度最快的节点。根据我的理解,自动选择将选出组内一个能连的上且延迟最低的节点,这个节点不一定速度快,也不一定稳定,但是毫无疑问是这次批量测延迟中延迟最低的节点。 (比如iplc本来是给你打游戏用的,去下Google Drive还拉满速度岂不是多少有点那啥) 补充:这种低延迟的节点特别适合给Telegram或者Whatsapp用(尤其是语音通话的时候);或者是游戏用(低延迟硬性要求) 比如在Telegram/Clubhouse开语音电话的时候延迟太高这语音电话就会非常不稳定(乃至听了半天一句话听不到,无疑是非常致命的) 其他选项说明: interval:间隔时间,单位秒(s) tolerance:批量检测完后切换节点所需的延迟差 比如: 第一次: HK1 HK2 TW1 300 350 345(延迟,单位毫秒(ms),下同) 过了300秒,第二次检测: HK1 HK2 TW1 325 300 325因为 325 - 300 = 25 < 75 所以不做切换(仍旧保持HK1节点) 又过了三百秒,第三次: HK1 HK2 TW1 400 275 310因为 400 - 275 = 125 > 75 所以切换至HK2节点。 故障转移: 这个模式与自动选择逻辑相近:都用测延迟选择节点,区别在与选择模式; - name: "Fallback" type: fallback proxies: - "HK1" - "TW1" - "HK2" url: 'http://www.gstatic.com/generate_204' interval: 300type:模式选择;这里选择了failback模式 interval:同上 说明: 第一次(当你夜里用不稳定的移动光纤家宽上网) HK1 HK2 TW1 No Response 1000 1500(延迟,单位毫秒(ms)) 此时选择HK2节点 过了三百秒第二次检测: TW1 HK1 HK2 450 375 1500此时依旧选择HK2节点联网 又过了三百秒: TW1 HK1 HK2 300 290 No Response此时才会使用HK1节点 此模式虽有用但不一定完全可用 (延迟高到10^3ms可用吗?) 负载均衡: 与前面的工作方式也很类似,同样测延迟,但是并非只是单独一个节点,而是不同网站使用不同节点。 load-balance: - name: "负载均衡" type: load-balance proxies: - "1" - "2" - "3" - "4" url: 'http://www.gstatic.com/generate_204' interval: 300type为load-balance表示此(负载均衡模式) url及interval见上。 这也就是为何称作“负载均衡”:不同流量不同代理,(理论)可以减轻服务器负载。 stragery:关键参数; 选项有叁: 不填 consistent-hashing round-robin第二项大致是对于同一个ip/网址下的请求都使用同一个节点。 (比如Google只用Hk1) C项则是轮换;(爬虫事务有效——一直用一个节点会被拉清单的) (友情提示:如果你的机场禁止批量测速/测延迟,那么以上三种策略请勿使用,否则会因为违反TOS被机场拉清单) 链式代理: 简单讲就是套娃; 比如你在校内找到了无线网,但是无线网需要认证啊, 这时候你发现不认证的时候校内有一台机器可以直连,这时候你“挪为私用”,在上面配置好Nodejs与npm,装好了SS-nodejs(ps:电信网直连npm不算慢) 可是你的机场只用v2ray啊,他不支持前置代理,这就很内啥,, 这时候Clash的链式代理就可以出场了。 - name: "OUTSIDE" type: relay proxies: - "出口" - "自选"“出口”当然是你的自己搭建的ss “自选”就是你选定的连接外网的节点组。 (ps:安全性很抱歉我们不能确保,就像你搭的SS如果被学校抓了,很难说不会出一个处分。这个问题不是一个clash客户端该讨论的,而是相对于这个协议来讨论的) 接下来是Rule部分: 这一部分可以说是Clash的关键: Clash 是一款用Go 语言编写的、基于规则的隧道(Tunnel )程序,它支持多种加密通信协议和跨平台 Rule: - DOMAIN-SUFFIX,google.cn,DIRECT此句定义了一个规则: DOMAIN-SUFFIX:按域名前缀匹配,此处即”*.google.cn” DIRECT:直连 - DOMAIN-KEYWORD,twitter,自选DOMAIN-KEYWORD:以关键词匹配,本例中匹配“twitter”(即凡是遇到twitter都走“自选”) - USER-AGENT,niconico*,自选USER-AGENT:用useragent字符串进行匹配;(在本例中凡是遇到有niconico就走“自选”) - DOMAIN,www.flash.cn,REJECTDOMAIN:对www.flash.cn精准匹配 REJECT:拒绝连接 - IP-CIDR,91.108.4.0/22,LowDelay,no-resolveIP-CIDR:此句为CIDR语法,可以使用此计算器来确定范围。 no-resolve:告诉Clash不要去尝试解析来匹配这条规则,只处理「直接IP 访问」的请求。 - MATCH,Final该句只能放在末尾,指定漏网之🐟该走哪个代理。 通过结合以上内容可以很方便的拉出来一份代理清单。 Such As Telegram: - DOMAIN-SUFFIX,,PROXY - DOMAIN-SUFFIX,tlanyan.me,PROXY - DOMAIN-SUFFIX,tdesktop.com,PROXY - DOMAIN-SUFFIX,telegra.ph,PROXY - DOMAIN-SUFFIX,telegram.me,PROXY - DOMAIN-SUFFIX,telegram.org,PROXY - DOMAIN-SUFFIX,telesco.pe,PROXY - IP-CIDR,91.108.4.0/22,PROXY,no-resolve - IP-CIDR,91.108.8.0/22,PROXY,no-resolve - IP-CIDR,91.108.12.0/22,PROXY,no-resolve - IP-CIDR,91.108.16.0/22,PROXY,no-resolve - IP-CIDR,91.108.56.0/22,PROXY,no-resolve - IP-CIDR,149.154.160.0/20,PROXY,no-resolve - IP-CIDR,2001:b28:f23d::/48,PROXY,no-resolve - IP-CIDR,2001:b28:f23f::/48,PROXY,no-resolve - IP-CIDR,2001:67c:4e8::/48,PROXY,no-resolve以上就是本期内容,我们下期再见( 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |